package com.example.medical.utils.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * 解决跨域问题
 */

@Configuration
public class CorsConfig {

    @Bean
    public CorsFilter corsFilter(){

        //添加CORS配置信息
        CorsConfiguration configuration = new CorsConfiguration();

        //允许访问的域，不要写*，否则cookie将无法使用
//        configuration.addAllowedOrigin("*");
        configuration.addAllowedOrigin("http://localhost:9528");//双引号里面填写请求的前端发武器

        //是否发送cookie信息
        configuration.setAllowCredentials(true);

        //允许访问的请求方式
        /**
         * configuration.addAllowedMethod("OPTIONS");
         * configuration.addAllowedMethod("HEAD");
         * configuration.addAllowedMethod("GET");
         * configuration.addAllowedMethod("PUT");
         * configuration.addAllowedMethod("POST");
         * configuration.addAllowedMethod("DELETE");
         * configuration.addAllowedMethod("PATCH");
         */
        configuration.addAllowedMethod("*");

        //允许的头信息
        configuration.addAllowedHeader("*");

        //添加映射路径，我们拦截一切请求
        UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
        urlBasedCorsConfigurationSource.registerCorsConfiguration("/admin/**",configuration);

        //返回新的CorsFilter
        return new CorsFilter(urlBasedCorsConfigurationSource);
    }
}
